import request from "@/utils/request";
import { UserPageQuery } from "@/api/system/user";

const SYSLEDGER_BASE_URL = "/api/v1/sysLedgers";

const SysLedgerAPI = {
    /** 获取流水台账数据 */
    getCount(queryParams?: SysLedgerPageQuery) {
        return request<any, LedgerCountVO>({
            url: `${SYSLEDGER_BASE_URL}/count`,
            method: "get",
            params: queryParams,
        });
    },
    /** 获取流水台账分页数据 */
    getPage(queryParams?: SysLedgerPageQuery) {
        return request<any, PageResult<SysLedgerPageVO[]>>({
            url: `${SYSLEDGER_BASE_URL}/page`,
            method: "get",
            params: queryParams,
        });
    },
    /**
     * 获取流水台账表单数据
     *
     * @param id 流水台账ID
     * @returns 流水台账表单数据
     */
    getFormData(id: number) {
        return request<any, SysLedgerForm>({
            url: `${SYSLEDGER_BASE_URL}/${id}/form`,
            method: "get",
        });
    },

    /** 添加流水台账*/
    add(data: SysLedgerForm) {
        return request({
            url: `${SYSLEDGER_BASE_URL}`,
            method: "post",
            data: data,
        });
    },

    /**
     * 更新流水台账
     *
     * @param id 流水台账ID
     * @param data 流水台账表单数据
     */
     update(id: number, data: SysLedgerForm) {
        return request({
            url: `${SYSLEDGER_BASE_URL}/${id}`,
            method: "put",
            data: data,
        });
    },

    /**
     * 批量删除流水台账，多个以英文逗号(,)分割
     *
     * @param ids 流水台账ID字符串，多个以英文逗号(,)分割
     */
     deleteByIds(ids: string) {
        return request({
            url: `${SYSLEDGER_BASE_URL}/${ids}`,
            method: "delete",
        });
    },

    /**
     * 导出
     *
     * @param queryParams 查询参数
     */
    export(queryParams: UserPageQuery) {
        return request({
            url: `${SYSLEDGER_BASE_URL}/export`,
            method: "get",
            params: queryParams,
            responseType: "blob",
        });
    },
}

export default SysLedgerAPI;

/** 流水台账分页查询参数 */
export interface SysLedgerPageQuery extends PageQuery {
    /** 日期 */
    recordDate?: [string, string];
    /** 业务员 */
    salesmanName?: string;
    /** 用户id */
    userName?: string;
    /** 车牌号 */
    chepaihao?: string;
    /** 是否付款 */
    isPay?:  string;
}
export interface LedgerCountVO {
    /** 车险保费 */
    chexianCount?:  number;
    /** 非车保费 */
    feicheCount?:  number;

}

/** 流水台账表单对象 */
export interface SysLedgerForm {
    id?:  number;
    /** 是否付款 */
    isPay?:  string;
    /** 扣税 */
    type?:  number;
    /** 用户id */
    userId?:  number;
    /** 用户名称 */
    userName?:  string;
    /** 日期 */
    recordDate?:  string;
    /** 业务员 */
    salesmanName?:  string;
    /** 业务员id */
    salesmanId?:  number;
    /** 被保险人 */
    beibaoxianren?:  string;
    /** 车牌号 */
    chepaihao?:  string;
    /** 投保公司 */
    toubaogongshi?:  string;
    /** 强险 */
    qiangxian?:  number;
    /** 商业险 */
    shangyexian?:  number;
    /** 车船税 */
    chechuanxian?:  number;
    /** 驾乘险 */
    jiachengxian?:  number;
    /** 强险政策 */
    qiangxianzhengce?:  number;
    /** 商业政策 */
    shangyezhengce?:  number;
    /** 驾乘险政策 */
    jiachengxianzhengce?:  number;
    /** 强险返点 */
    qiangxianfandian?:  number;
    /** 商业返点 */
    shangyefandian?:  number;
    /** 驾乘返点 */
    jiachengfandian?:  number;
    /** 手续费汇总 */
    shouxufei?:  number;
    /** 应收 */
    yingshou?:  number;
    /** 利润 */
    lirun?:  number;
    /** 净费 */
    jingfei?:  string;
    /** 返给业务员 */
    fangeiyewuyuan?:  number;
    /** 投保人手机号 */
    toubaorenshoujihao?:  string;
    /** 备注 */
    beizhu?:  string;
    /** 填写时间 */
    createTime?:  Date;
    /** 附加奖励 */
    fujiajiangli?:  number;
    /** 业务员奖励 */
    yewuyuanjiangli?:  number;
}

/** 流水台账分页对象 */
export interface SysLedgerPageVO {
    id?: number;
    /** 用户id */
    userId?: number;
    /** 用户名称 */
    userName?: string;
    /** 日期 */
    recordDate?: Date;
    /** 业务员 */
    salesmanName?: string;
    /** 业务员id */
    salesmanId?: number;
    /** 被保险人 */
    beibaoxianren?: string;
    /** 车牌号 */
    chepaihao?: string;
    /** 投保公司 */
    toubaogongshi?: string;
    /** 强险 */
    qiangxian?: number;
    /** 商业险 */
    shangyexian?: number;
    /** 车船税 */
    chechuanxian?: number;
    /** 驾乘险 */
    jiachengxian?: number;
    /** 强险政策 */
    qiangxianzhengce?: number;
    /** 商业政策 */
    shangyezhengce?: number;
    /** 驾乘险政策 */
    jiachengxianzhengce?: number;
    /** 强险返点 */
    qiangxianfandian?: number;
    /** 商业返点 */
    shangyefandian?: number;
    /** 驾乘返点 */
    jiachengfandian?: number;
    /** 手续费汇总 */
    shouxufei?: number;
    /** 应收 */
    yingshou?: number;
    /** 利润 */
    lirun?: number;
    /** 净费 */
    jingfei?: string;
    /** 返给业务员 */
    fangeiyewuyuan?: number;
    /** 投保人手机号 */
    toubaorenshoujihao?: string;
    /** 备注 */
    beizhu?: string;
    /** 填写时间 */
    createTime?: Date;
    /** 附加奖励 */
    fujiajiangli?:  number;
    /** 业务员奖励 */
    yewuyuanjiangli?:  number;
}
